თავი 4. ფუნქციების გამოყენება

ჯგუფებში დახარისხების გამოყენება

    ამორჩეული ჯგუფების დახარისხების მიზნით საჭიროა წინადადების HAVING  შემდეგ გამოყენებული იქნეს წინადადება ORDER BY იმ სვეტის სახელის მითითებით, რომლითაც ხორციელდება დაჯგუფება.
ORDER BY saqdas

შეკითხვაში ერთდროულად ამორჩევის წინადადებების WHERE-ს და HAVING-ის  გამოყენება

წინადადებით WHERE ხორციელდება ჩანაწერების ამორჩევა,  ხოლო წინადადებით HAVING-ით კი - ჯგუფების ამორჩევა. SQL ინსტრუქციაში WHERE იწერება დაჯგუფების GROUP BY ოპერაციამდე, ხოლო HAVING კი დაჯგუფების ოპერაციის -  GROUP BY შემდეგ.  

მაგალითი
ცხრილიდან  tbsaq_mireba საქონლის ნომრების მიხედვით გამოვანგარიშოთ შეძენის ღირებულების, რეალიზაციის ღირებულების ჯამები, შეძენისა და რეალიზაციის საშუალო ფასი იმ საქონლის ნომრების გარდა, სადაც საწყობში მიღებული რაოდენობა 80-ზე მეტია
SELECT tbsaq_mireba.saq_nomeri, Avg(tbsaq_mireba.sez_fasi) AS [SeZenis fasis saSualo], 
'შეძენის ფასის საშუალოს გამოანგარიშება Avg ფუნქცია საშუალებით
Sum([tbsaq_mireba]![sez_fasi]*[tbsaq_mireba]![raodenoba]) AS [sul  SeZenis Rirebuleba], 
’ შეძენის ღირებულებისა და ამ ღირებულების ჯამის გამოანგარიშება
Avg([tbsaq_mireba]![sez_fasi]*0.2+[tbsaq_mireba]![sez_fasi]) AS [ralizaciis fasis saSualo], 
’რეალიზაციის ფასისა მისი საშუალოს გამოანგარიშება
Sum([tbsaq_mireba]![raodenoba]*([tbsaq_mireba]![sez_fasi]*0.2+[tbsaq_mireba]![sez_fasi])) AS [sul ralizaciis Rirebuleba]
’შეძენის ღირებულებისა და შეძენის ღირებულების ჯამის გამოანგარიშება
FROM tbsawyobi INNER JOIN (tbsaqoneli INNER JOIN tbsaq_mireba ON tbsaqoneli.nomeri = tbsaq_mireba.saq_nomeri) ON tbsawyobi.nomeri = tbsaq_mireba.saw_nomeri
WHERE (((tbsaq_mireba.raodenoba)>80))
’ამორჩევა საქონლის რაოდენობის მიხედვით. ამ ველის მნიშვნელობა საშედეგო ცხრილში არ გამოიტანება
GROUP BY tbsaq_mireba.saq_nomeri
HAVING (((Sum([tbsaq_mireba]![sez_fasi]*[tbsaq_mireba]![raodenoba]))>420))
’ამორჩევა ჯგუფების მიხედვით. ამოირჩევა მხოლოდ ის ჯგუფები, რომლებშიც შეძენის ღირებულება >42-ზე

მიაქციეთ ყურადღება ინსტრუქციაში ერთდროულად გამოყენებულია WHERE და HAVING. ამორჩევა WHERE-ს საშუალებით დაჯგუფების ოპერაციამდე - GROUP BY-მდე ხორციელდება. ამორჩევის შემდეგ ხორციელდება დაჯგუფება საქონლის ნომრის, tbsaq_mireba.saq_nomeri მიხედვით და შემდეგ ჯგუფების ამორჩევა HAVING-ით.